其他
人物 | 罗景:多业务融合推荐场景下的深度学习实践
58同城TEG推荐技术团队负责人罗景老师受邀参加2020 DataFunTalk年终·大会,做了主题为《多业务融合推荐场景下的深度学习实践》的分享。主要介绍了排序模型从双通道到多通道到多场景适配的演化发展过程。
本文根据此分享实录整理而成,欢迎阅读分享。
背景
场景与挑战
多业务融合上,候选帖子类型覆盖租房,招聘,二手房,二手车,本地生活,新房,新车等多个业务 多目标优化上,涉及连接效率/商业收入/用户体验/用户留存/运营活动等多个目标的平衡
每种业务帖的属性信息存在显著差异,进而导致用户兴趣在不同业务上的差异,这样,样本中帖子特征与用户兴趣特征在维度上无法直接对齐 传统上非常有效的反馈特征,也由于业务差异,导致反馈特征的取值范围差异非常大,实际效果并不理想
部分特征需要针对不同业务维护特有的数据流程, 比如不同业务的用户兴趣构建, 维护代价大 存在业务特定的特征工程逻辑,比如不同业务的匹配交叉特征,复杂度高
深度兴趣模型演化发展
行为序列构成上包括了用户的点击与转化行为 表征方式上,采用帖子ID,类目,地域等关键属性信息作为一个帖子的表征 序列长度选取上,参考不同业务的周期特点,进行了针对性的选取
DIN模型利用注意力机制,通过将用户行为与待推荐帖子交叉来构建用户兴趣 DIEN考虑了用户行为的序列性,引入了兴趣抽取与演化层,支持动态兴趣的刻画 Transformer利用自注意力与多头等机制,通过位置Embedding进行序列化兴趣建模
输入层为基础特征层,包括帖子/用户/上下文等原始基础特征, 比如帖子LBS,帖子关键标签,帖子标题,帖子首图,用户兴趣标签,用户LBS,用户最近的搜索词,最近点击帖子的的关键属性等 向量化层,通过预训练或者embedding手段 构建每个原始特征的向量化表示, 比如帖子首图采用预训练模型构建,帖子标题采用词向量,其他特征采用embedding的方式来完成向量化 交叉层基于向量化表示,根据场景与业务特点来构建特定特征对的定制化交叉,可以使用不同的交叉方式,支持Cos相似度,DNN,Multiply,Gap等交叉操作 拼接层,将原始向量以及交叉后的结果拼接,形成定制化交叉模块的输出
它显著降低特征工程复杂度:通过在定制化通道引入特征交叉能力,以及基于用户行为序列的建模方式,使得特征工程流程数大幅减少,复杂度也明显降低 建立了序列化兴趣模型线上线下的工程架构基础:解决离线在线性能问题,成为主流排序模型 也是进一步优化的基础:后续的多通道模型升级以及多场景适配探索都是以双通道模型为基础的
深度会话兴趣模型,通过对行为序列的会话切分,基于会话对用户兴趣进行结构化建模 长序列用户行为模型,以神经图灵机为基础对行为序列进行处理,在保证线上预测性能的前提下,使用更长的用户行为序列,进一步提升兴趣建模的精准度 基于搜索的终身行为序列建模,采用两阶段方式,首先从用户历史行为序列中找到跟待推荐商品的相近行为,然后基于选取的行为进行精细化兴趣建模
定制化通道,建立用户最近行为以及上下文与待推荐帖子之间的向量化交叉,形成定制兴趣 点击行为通道,基于点击行为,与待推荐帖子进行自注意力交叉,构建基础用户兴趣 搜索行为通道,建立主动搜索行为与待推荐帖子的关联,形成用户的表达兴趣 转化行为通道,根据用户的进一步转化行为,与待推荐帖子进行自注意力交叉,构建核心用户兴趣 内容行为通道,根据用户在文章内容上的浏览行为, 与待推荐帖子关联,形成起到补充作用的辅助兴趣
点击行为通道,每个行为采用帖子的关键属性与帖子ID来进行表征 转化行为通道,根据行为的稀疏程度,权衡表征特征的泛化能力与信号强度,采用聚类ID与关键属性进行表征 搜索行为通道,基于词向量将搜索词与帖子文本片段表征到 统一的语义空间 内容行为通道,采用词向量表征是当前可选的一种方式,但是存在比较大的局限性,行为窗口协同表征是后续探索的一个方向
工程实践
请求batch大小调优,通过性能测试,目前一个batch大小控制在15到20 之间 模型解耦上线,由于平台目前无法支持大模型上线,采取了将向量化层剥离出来,将参数存到redis中来支持上线的方式 用户数据Batch内共用,之前每条样本有各自的用户数据,但一个batch中用户数据是相同的,可以共享的,共享处理后,网络传输性能有显著的提升
总结展望
因为58业务,用户使用频次低,在没有足够信息刻画用户兴趣的情况下,多行为序列的引入成为了我们的主要探索方向 因为58用户有固定的业务周期且需求明确程度高,因此我们并没有过多的关注怎么扩展序列长度,而是根据业务周期选取确定合适的行为序列 因为58的帖子信息结构化程度高,这样在用户行为表征上,我们引入了聚类ID,在内容挖掘理解上,直接提取核心属性信息
引入特色召回通道:比如再营销召回,冷启动召回优化,场景化召回。 向量化召回:在采用W2V方式的基础上,逐步过渡到基于双塔模型的方式。 召回配置化:从采用手工配置各召回通道额度优先级等,到逐步基于数据驱动,支持热加载实时配置生效,也在探索自动调节/动态调节的可能性。
模型架构优化:也是本次分享的主要内容,主要是从双通道到多通道深度兴趣模型到多场景适配这样一个优化过程。 多目标优化:目前还在初级阶段,主要是基于现有的模型架构,采用ESSM做多目标模型训练,后续多目标优化会成为我们的重点方向
打散策略上:从规则打散到基于相似度的柔性打散策略, 也考虑通过模型的方式支持重排,目前还没有资源来支持。
样式对齐:针对无图业务引入特色展示元素,比如招聘贴没有图片,展示上就无法与其他业务对齐,体验问题突出,通过多次迭代后,引入了头像等元素进行补充,体验与效果都有明显提升。 推荐解释:引入推荐解释,并从生成策略,密度控制,维度优选等几个方面进行了优化。
福利环节
为了鼓励优质内容传播,【58技术】公众号近期会持续推出不定期活动奖励。
评论区互动留言,即可参与此次活动
留言转发集赞,点赞量前5名(点赞数需大于10)可获得定制版新年代码台历一本
活动时间:截至2021年1月12日